使用JAVA反射类执行函数
当我调用myClass时,我有以下课程。doprocess(),我应该得到字符串“hai”,如何实现它
public class myClass{
public int doprocess(){
dataClass objSt = new dataClass();
Class newCls = objSt.getClass();
Method[] methods = newCls.getMethods();
for (Method method : methods) {
if(method.getName() == "getList"){
return method;
}
}
}
}
class dataClass{
public String getList(){
return "hai,";
}
}
如果我执行上述代码,我会得到如下响应
public java.lang.String com.myproject.controller.dataClass.getList()
但我需要响应是getList函数的返回值
# 1 楼答案
无法编译当前代码,因为
doprocess
方法声明为返回int
,但方法体返回Method
对象要使用反射调用该方法,请使用invoke
试试这个:
# 2 楼答案
您可以使用getDeclaredMethod获取具有给定名称和参数集的方法,然后可以使用Method.invoke(instance, params...)调用该方法
试验